VBからDelphiへの移行
2002年11月から、VBによるフリーソフトを公開して来た訳ですが、そろそろ1年になろうかというところで、このままVBだけで開発を続けて行っていいのだろうか?という疑問が浮かんできました。
兎にも角にも、一番大きな問題はランタイムの存在です。
一番分かりやすく言うと、インストール仕立てのWindows(98SE以降)で、VBのソフトは動かそうとしても動きません。そりゃそうです。VBのソフトはランタイムが必須なのですから。
中には、ランタイムをインストールする事を嫌うユーザーもいます。また、時々、ちゃんとランタイムを入れてあるのに、VBで使用しているコンポーネントによっては、登録されていないDLLやOCXを使っているとか言って動かない例もあります。
これは、VBを始めて間もない頃に気づいたのですが、Service
pack5を充てた環境ですと、例えば、ListViewというコンポーネントを使うだけでも、Microsoft
Windows Common Control 5.0(SP2)とMicrosoft Windows Common Control 5.0(SP4)があり、前者はCOMCTL32.OCXを後者は
MSCOMCTL.OCXを使います。どちらにもListViewというコンポーネントがあり、最初の頃は前者を使っていましたが、PC環境によっては、ちゃんとランタイムが入っていても起動時にエラーが発生してしまい使えないなんて事がありました。後者を使うようになってからは、そういうトラブルもなくなりました。
また、VBのコンポーネントにはリストアップされているのに、いざフォームに貼り付けて使おうと思っていたら、登録情報がない!みたいなエラーが発生して使えないこともありました。私はLearning
Editionを使っているので、多分Pro版なら使えるんだろうけど、ね。だったら、使えるコンポーネントにリストアップするな!なんてね。
どうにかしてランタイムの存在を気にしなくても済む方法を考えていました。
理想は、インストール仕立てのWindowsで動く事。
でも、そういう言語はC以外には思い浮かびませんでした。でも、Cは、過去にポインタで挫折した記憶があったり、その独特なソースは、BASICに慣れきった私にとって、拒絶反応が出てしまうのです。
ここ2〜3週間そんなことを考えながらネットサーフィンをしていたら、とある掲示板で、Delphiという言語がランタイムが不要という情報を目にしました。Delphi...多分、これまでにも、その存在は知っていたと思うんですが、特に気に留めたことはありませんでした。で、いろいろ調べたら、開発環境が無償で提供されているってことを知って早速DLしました。文法のことが気になったので、これもネット検索したら、何と慣れ親しんでいるBASICに非常に似ていることが分かり、WEBサイト上で紹介されているソースを見たら「これならいけるかも」という感触を覚えました。
VBを始めた頃やった、テキストボックス3つとボタンを配置し、簡単な足し算の計算をさせるソフトを作ってみたら、なんとあっさり出来てしまいました。
そして少しずつ複雑なものを試してみたところ、若干VBとは解釈に違いはあっても、まるっきり違う訳ではないので、Delphi流のプログラミング作法が分かれば、難なく移行できそうな気がしました。
そういうわけで、ここ1週間ほど、これまでに公開してきたVBのソフトのうち、比較的小規模で、VectorでのDL数があるもの(=需要が見込める)をピックアップして、Delphiに移植してみました。
私が考えるDelphiの利点
1.ランタイムが不要
再三言い尽くしています。素のWindowsで動きます。
2.コンパイラが高速みたい
基本的にコンパイラ言語ですが、Cに比べて高速らしいです。※VC(C++)でのコンパイラ速度を知らないのでどのくらい速いかまでは分からない。
3.ポインタが使える
VBではポインタは使えませんでした。(いや、もしかして、私が知らないだけ?)
Delphiでは、ポインタが使えます。ただ、C同様に柔軟性があるのかは不明
4.開発環境が無償で提供されている
そのため、商用・業務向けアプリは作れない。フリーソフトを作る限りでは、問題にはならないはず。
5.コンポーネントの作成・追加が比較的自由
まだ、コンポーネントを自作できるほどの知識はありませんが、こういうコンポーネントがあれば・・・というが色々公開されています。
というわけで、Cを覚えないとランタイムの問題を解決できないのかな?と思っていた私にとってDelphiは素晴らしい開発環境になりそうです。
あ、もちろん、VBでの開発を停止する事はないと思います。
VBには、VBなりの開発のしやすさがあると思うし。
このコラムを読んでいるとVBに対してあまりよく思っていないように受け取られそうですが、私にとっては、Windows用のソフトを作るきっかけになりました。Windows用のソフトを作るってどういうことなのか?を知る手立てとなりました。また、フリーソフトを公開することを可能にしてくれました。私のフリーソフトを介して知り合ったネット上のユーザーもできました。
ただ、フリーソフトを作る言語としてVBは、ちょっと問題になることが多いってことは確かだと思います。
2003.10.27